package com.wmh.baseservice.common.utils;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.List;

/**
 * 日期格式
 * @author 谢骏
 * @date 2022/9/12 14:49
 **/
public class DateFormatTemplate {

    /**
     * 团购写入时间格式
     * */
    public static String GROUP_GOODS_WRITE = "yyyy-MM-dd HH:mm";

    /**
     * 团购写入时间格式2
     * */
    public static String GROUP_GOODS_WRITE_2 = "yyyy-MM-dd HH:mm:ss";


    /**
     * 活动写入时间格式3
     * */
    public static String ACTIVITY_WRITE_3 = "yyyy-MM-d HH:mm:ss";

    /**
     * 团购读取时间格式
     * */
    public static String GROUP_GOODS_READ = "yyyy-MM-dd HH:mm:ss.S";

    /**
     * 格式列表
     * */
    public static List<String> FORMAT_LIST = new ArrayList<>();

    /**
     * 上海时区
     * */
    public static ZoneId ZONE_SHANGHAI = ZoneId.of(ZoneId.SHORT_IDS.get("CTT"));

    static {
        FORMAT_LIST.add(GROUP_GOODS_WRITE);
        FORMAT_LIST.add(GROUP_GOODS_WRITE_2);
        FORMAT_LIST.add(GROUP_GOODS_READ);
        FORMAT_LIST.add(ACTIVITY_WRITE_3);
    }

    /**
     * 解析时间
     * */
    public static LocalDateTime paresDate(String time){
        LocalDateTime result = null;
        for (String s : FORMAT_LIST) {
            try{
                result = LocalDateTime.parse(time, DateTimeFormatter.ofPattern(s));
                return result;
            }catch (DateTimeParseException ignored){}
        }
        throw new RuntimeException("没有合适的日期格式 : " + time);
    }

}
